package com.irdstudio.efp.console.service.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.irdstudio.efp.console.service.domain.SRoleRescRule;
import com.irdstudio.efp.console.service.vo.SRoleRescRuleVO;

public interface SRoleRescRuleDao {

	public int insertSRoleRescRule(SRoleRescRule sRoleRescRule);

	public int deleteByPk(SRoleRescRule sRoleRescRule);

	public int updateByPk(SRoleRescRule sRoleRescRule);

	public SRoleRescRule queryByPk(SRoleRescRule sRoleRescRule);

	public List<SRoleRescRule> queryAllOwnerByPage(SRoleRescRule sRoleRescRule);

	public List<SRoleRescRule> queryAllCurrOrgByPage(SRoleRescRule sRoleRescRule);

	public List<SRoleRescRule> queryAllCurrDownOrgByPage(SRoleRescRule sRoleRescRule);

	/**
	 * 查询角色对应资源操作码
	 * 
	 * @param roleCode
	 *            角色码
	 * @param rescCode
	 *            资源码
	 * @return
	 */
	public List<String> queryRoleRescRules(SRoleRescRule sRoleRescRule);

	/**
	 * 删除角色对应资源操作码
	 * 
	 * @param roleCode
	 *            角色码
	 * @param rescCode
	 *            资源码
	 * @return
	 */
	public int deleteRoleRescRule(SRoleRescRule sRoleRescRule);

	/**
	 * 插入角色对应资源操作码
	 * 
	 * @param param
	 * @return
	 */
	public int addRoleRescRule(SRoleRescRule sRoleRescRule);

	/**
	 * 根据资源码 删除角色对应资源操作 信息 (删除资源时，调用)
	 * 
	 * @param rescCode
	 *            资源码
	 * @return
	 */
	public int deleteByRescCode(@Param("rescCode") String rescCode);

	/**
	 * 根据资源码 和 资源操作码 删除角色对应资源操作 信息 (删除资源操作码信息时，调用)
	 * 
	 * @param rescCode
	 * @param rescActCode
	 * @return
	 */
	public int deleteByRescCodeRescActCode(@Param("rescCode") String rescCode, @Param("rescActCode") String rescActCode);

	/**
	 * 查询 上级资源操作码 根据资源码和资源操作描述
	 * 
	 * @param rescCode
	 * @param rescActDesc
	 * @return
	 */
	public List<SRoleRescRuleVO> queryParentRescInfo(@Param("rescCode") String rescCode, @Param("rescActDesc") String rescActDesc,
			@Param("roleCode") String roleCode);

	/**
	 * 批量插入角色对应资源操作码
	 * 
	 * @param roleRescRules
	 * @return
	 */
	public int insertMoreRoleRescRule(@Param("roleRescRules") List<SRoleRescRule> roleRescRules);
}